Multimedia computer software products present sounds, graphic images, animations and movies to their users in an interactive environment. Typically, users can explore and revisit different sections of the multimedia product. Usually, a multimedia product is designed so that as a user advances through the content of the product, the user navigates through information, solves puzzles, demonstrates/tests knowledge, or participates in interactive simulations.
The development of a multimedia product is typically achieved through the joint efforts of skilled artists who produce the sounds, images and animations, and skilled software authors who bind together the art, define the interactive relationships between the multimedia product and the user, and codify the behavior of the simulations and games. A software author's job is typically complex, generally entailing a relatively steep learning curve.
Software authors typically use an authoring tool to create or modify a multimedia product. Rather than requiring an exact text-based syntax as is found in a programming environment such as Apple's MPW or Symantec's Think C, authoring tools generally provide a direct-manipulation interface that allows authors to define the behavior of objects by writing a textual description in a simple scripting language, or by rearranging graphic items in a flowchart, state-machine map, score, or other representation. Examples of authoring tools include HyperCard, Authorware Professional, MacroMedia Director, Visual Basic or Apple Media Toolkit. HyperCard and Apple Media Toolkit are available from Apple Computer, Inc. HyperCard and Apple are registered trademarks of Apple Computer, Inc. Authorware Professional and MacroMedia Director are available from Macromedia, Inc. (Director and Authorware are registered trademarks of Macromedia, Inc.). Visual Basic is a registered trademark of Microsoft Corporation.
Today, an end-user of a multimedia product does not generally have the ability to customize the multimedia product to tailor it to her personal uses. For example, an end-user may desire to modify a multimedia product to focus on or to circumvent particular aspects of the product. A teacher may want to focus the multimedia product on a particular topic being taught in class. Similarly, a parent may want to modify a multimedia product so that it is appropriate for the particular age of their child, circumventing puzzles or simulations which are beyond their child's age/capabilities. Thus, it is desirable to have an authoring tool which permits end-users of multimedia products to tailor the products for their individual uses.
For novice authors creating multimedia products and end-users customizing multimedia products it would be beneficial to have a mechanism for learning how to create and modify multimedia products. For example, a novice author would benefit from learning how other authors tackled the task of creating a multimedia product, while end-users would benefit from information on how the particular multimedia product being tailored was created and how it can be modified.
Today, authoring tools do not generally provide a mechanism whereby authors/end-users can discern the creation or evolution process of multimedia products which are produced using that tool. Some of the authoring environments (e.g. HyperCard) allow end-users to inspect the finished code, but this solution only shows the finished work, not the product's evolution nor the process of creation. Thus, these authoring tools do not provide software authors with a mechanism for learning about the development of a multimedia product in order to increase their knowledge and advance their skills. Nor do they provide end-users of multimedia products with a mechanism for learning how to customize the multimedia products.
Additionally, the multimedia products themselves typically do not provide a mechanism whereby the users of the products can discern information related to how the product was created or how it evolved. Generally, users of multimedia products can only observe the finished product or code and based on that information guess as to how the product was created.
Novice software authors, as well as experienced professionals, would benefit by insight into the creation process of multimedia products developed by other software authors. Thus, it is desirable to have an authoring tool which can be used by software authors to gain insight into the creation of multimedia products created using that tool.
Some software applications such as Excel, available from Microsoft Corporation, provide macro recording tools which can be used for capturing sequences of user input. Typically, after a user activates the macro recording tools, user input is recorded until the macro recording tools are deactivated and the recorded user input is stored in a file, called a “macro”. By invoking the macro, a user can repeat the same sequence of user input as was recorded in the macro and the computer will behave as if the user had again inputted the same sequence of input. However, the macro recording tools generally do not provide information, e.g. explanations, about what user inputs are being executed, it just executes them.